package com.eastfair.venueservice.service;

import com.eastfair.common.dto.AttachmentFileDTO;
import com.eastfair.common.vo.AttachmentFileVO;
import com.eastfair.core.base.R;

import java.util.List;
import java.util.Map;

/**
 * common service 附件接口.
 *
 * @author dqq
 * @date 2022 /11/29
 */
public interface VenueManageAttachFileService {

    /**
     * 查询附件.
     *
     * @param attachmentFileDTO the attachment file dto
     * @return the list
     */
    List<AttachmentFileVO> queryAttachmentFile(AttachmentFileDTO attachmentFileDTO);

    /**
     * 业务ID查询附件列表.
     *
     * @param businessId   the business id
     * @param businessType the business type
     * @return the list
     */
    List<AttachmentFileVO> queryByBusinessId(Long businessId, String businessType);

    /**
     * 批量业务ID查询附件列表.
     *
     * @param businessIds  the business ids
     * @param businessType the business type
     * @return the list
     */
    List<AttachmentFileVO> queryByBusinessIds(List<Long> businessIds, String businessType);

    /**
     * 批量业务ID查询附件列表.
     *
     * @param businessIds  the business ids
     * @param businessType the business type
     * @return the map key=businessId, value=附件列表
     */
    Map<Long, List<AttachmentFileVO>> queryMapByBusinessIds(List<Long> businessIds, String businessType);

    /**
     * 业务ID查询附件列表.
     *
     * @param businessId the business id
     * @return the list
     */
    List<AttachmentFileVO> queryByBusinessId(Long businessId);

    /**
     * 批量保存附件.
     *
     * @param attachmentFileDTOs the attachment file dt os
     */
    void saveOrUpdateAttachmentFile(List<AttachmentFileDTO> attachmentFileDTOs);

    /**
     * 批量删除附件.
     *
     * @param ids the ids
     * @return the r
     */
    void deleteBatch(List<Long> ids);

    /**
     * businessID批量删除附件.
     *
     * @param businessId the business id
     */
    void deleteBatchByBusinessId(Long businessId);
}